// Generated from E:/working/study/codespace/mylang/src/main/resources\MyLang.g4 by ANTLR 4.9.2
package wang.datahub.mylang.parser;
import org.antlr.v4.runtime.tree.ParseTreeListener;

/**
 * This interface defines a complete listener for a parse tree produced by
 * {@link MyLangParser}.
 */
public interface MyLangListener extends ParseTreeListener {
	/**
	 * Enter a parse tree produced by {@link MyLangParser#prog}.
	 * @param ctx the parse tree
	 */
	void enterProg(MyLangParser.ProgContext ctx);
	/**
	 * Exit a parse tree produced by {@link MyLangParser#prog}.
	 * @param ctx the parse tree
	 */
	void exitProg(MyLangParser.ProgContext ctx);
	/**
	 * Enter a parse tree produced by {@link MyLangParser#statementList}.
	 * @param ctx the parse tree
	 */
	void enterStatementList(MyLangParser.StatementListContext ctx);
	/**
	 * Exit a parse tree produced by {@link MyLangParser#statementList}.
	 * @param ctx the parse tree
	 */
	void exitStatementList(MyLangParser.StatementListContext ctx);
	/**
	 * Enter a parse tree produced by {@link MyLangParser#variableDecl}.
	 * @param ctx the parse tree
	 */
	void enterVariableDecl(MyLangParser.VariableDeclContext ctx);
	/**
	 * Exit a parse tree produced by {@link MyLangParser#variableDecl}.
	 * @param ctx the parse tree
	 */
	void exitVariableDecl(MyLangParser.VariableDeclContext ctx);
	/**
	 * Enter a parse tree produced by {@link MyLangParser#typeAnnotation}.
	 * @param ctx the parse tree
	 */
	void enterTypeAnnotation(MyLangParser.TypeAnnotationContext ctx);
	/**
	 * Exit a parse tree produced by {@link MyLangParser#typeAnnotation}.
	 * @param ctx the parse tree
	 */
	void exitTypeAnnotation(MyLangParser.TypeAnnotationContext ctx);
	/**
	 * Enter a parse tree produced by {@link MyLangParser#functionDecl}.
	 * @param ctx the parse tree
	 */
	void enterFunctionDecl(MyLangParser.FunctionDeclContext ctx);
	/**
	 * Exit a parse tree produced by {@link MyLangParser#functionDecl}.
	 * @param ctx the parse tree
	 */
	void exitFunctionDecl(MyLangParser.FunctionDeclContext ctx);
	/**
	 * Enter a parse tree produced by {@link MyLangParser#functionBody}.
	 * @param ctx the parse tree
	 */
	void enterFunctionBody(MyLangParser.FunctionBodyContext ctx);
	/**
	 * Exit a parse tree produced by {@link MyLangParser#functionBody}.
	 * @param ctx the parse tree
	 */
	void exitFunctionBody(MyLangParser.FunctionBodyContext ctx);
	/**
	 * Enter a parse tree produced by {@link MyLangParser#functionCall}.
	 * @param ctx the parse tree
	 */
	void enterFunctionCall(MyLangParser.FunctionCallContext ctx);
	/**
	 * Exit a parse tree produced by {@link MyLangParser#functionCall}.
	 * @param ctx the parse tree
	 */
	void exitFunctionCall(MyLangParser.FunctionCallContext ctx);
	/**
	 * Enter a parse tree produced by {@link MyLangParser#expressionStatement}.
	 * @param ctx the parse tree
	 */
	void enterExpressionStatement(MyLangParser.ExpressionStatementContext ctx);
	/**
	 * Exit a parse tree produced by {@link MyLangParser#expressionStatement}.
	 * @param ctx the parse tree
	 */
	void exitExpressionStatement(MyLangParser.ExpressionStatementContext ctx);
	/**
	 * Enter a parse tree produced by {@link MyLangParser#singleExpression}.
	 * @param ctx the parse tree
	 */
	void enterSingleExpression(MyLangParser.SingleExpressionContext ctx);
	/**
	 * Exit a parse tree produced by {@link MyLangParser#singleExpression}.
	 * @param ctx the parse tree
	 */
	void exitSingleExpression(MyLangParser.SingleExpressionContext ctx);
	/**
	 * Enter a parse tree produced by {@link MyLangParser#assignment}.
	 * @param ctx the parse tree
	 */
	void enterAssignment(MyLangParser.AssignmentContext ctx);
	/**
	 * Exit a parse tree produced by {@link MyLangParser#assignment}.
	 * @param ctx the parse tree
	 */
	void exitAssignment(MyLangParser.AssignmentContext ctx);
	/**
	 * Enter a parse tree produced by {@link MyLangParser#primary}.
	 * @param ctx the parse tree
	 */
	void enterPrimary(MyLangParser.PrimaryContext ctx);
	/**
	 * Exit a parse tree produced by {@link MyLangParser#primary}.
	 * @param ctx the parse tree
	 */
	void exitPrimary(MyLangParser.PrimaryContext ctx);
	/**
	 * Enter a parse tree produced by {@link MyLangParser#binOP}.
	 * @param ctx the parse tree
	 */
	void enterBinOP(MyLangParser.BinOPContext ctx);
	/**
	 * Exit a parse tree produced by {@link MyLangParser#binOP}.
	 * @param ctx the parse tree
	 */
	void exitBinOP(MyLangParser.BinOPContext ctx);
	/**
	 * Enter a parse tree produced by {@link MyLangParser#parameterList}.
	 * @param ctx the parse tree
	 */
	void enterParameterList(MyLangParser.ParameterListContext ctx);
	/**
	 * Exit a parse tree produced by {@link MyLangParser#parameterList}.
	 * @param ctx the parse tree
	 */
	void exitParameterList(MyLangParser.ParameterListContext ctx);
	/**
	 * Enter a parse tree produced by {@link MyLangParser#identifier}.
	 * @param ctx the parse tree
	 */
	void enterIdentifier(MyLangParser.IdentifierContext ctx);
	/**
	 * Exit a parse tree produced by {@link MyLangParser#identifier}.
	 * @param ctx the parse tree
	 */
	void exitIdentifier(MyLangParser.IdentifierContext ctx);
	/**
	 * Enter a parse tree produced by {@link MyLangParser#typeName}.
	 * @param ctx the parse tree
	 */
	void enterTypeName(MyLangParser.TypeNameContext ctx);
	/**
	 * Exit a parse tree produced by {@link MyLangParser#typeName}.
	 * @param ctx the parse tree
	 */
	void exitTypeName(MyLangParser.TypeNameContext ctx);
}